'''
字符串常用方法
str.lower()         全转小写字符，返回新字符串
str.upper()         全转大写字符，返回新字符串
str.split(sep=None) 按sep分割成列表
str.count(sub)      统计sub在str中出现的次数
str.find(sub)       sub在str首次的索引，不存在返回-1
str.index(sub)      同上，不存在时报错
str.startswith(s)   str是否以s开头
str.endswith(s)     str是否以s结尾

str.replace(old,new)        所有old 替换为new 返回新字符串
str.center(width,fillchar)  str在指定width宽度居中，可用fill填充
str.join(iter)              iter的每个元素后都加一个新的字符串str
str.strip(chars)            去左侧和右侧charsz中列出的字符串
str.lstrip(chars)           去左
str.rstrip(chars)           去右
'''

'''
格式化字符串方式：
    1. 占位符
        %s 字符串
        %d 数字
        %f 浮点
    2. f-string
        py3.6引入的格式，{}占位被替代的字符  f'{name}'
    3. .format()
'''
name = "张三"
age = 18
score = 95.3
# 占位符
print("姓名%s 年龄%d 成绩 %.1f" %(name,age,score))
# f-string
print(f"姓名{name} 年龄 {age} 分数 {score}")
# .formart()
print("姓名{0} 年龄{1} 分数 {2}".format(name,age,score))

'''
format 详细格式
引导符   填充   对齐方式<>^    宽度    数字千分符,   .精度   类型b/d/o/x/X(进制)   e/E/f/%（浮点），E科学计数法
'''
print("{0:*^20},{1:.2f}".format('你好啊',3.1415))

'''
编码
encode(字符集,错误处理)
解码
decode(字符集,错误处理)

错误处理包含'strict' 'ignore' 'replace' 严格（转换异常报错） 忽略（忽略错误） 替换 （对应不上的替换成？）
'''

'''
数据验证
.isdigit() 是否全是阿拉伯数字
.isnumeric() 是否全是数字（包含中文 罗马数字 一二三四...）
.isalpha() 是否全是字母（包含中文字符）
.isalnum() 是否全是数字或字母（包含中文字符）
.islower() 是否全小写
.isupper() 是否全大写
.istitle() 是否所有字符都是首字母大写
.isspace() 所有字符都是空白字符 \n \t 等
'''

'''
拼接
 1. '你'+'好'
 2. join()    ''.join(['hello','world'])
 3. 直接拼接 print('你''好')
 4. 格式化字符串 print('%s%s' %('你','好'))
'''

'''
正则相关
re.match(pattern,string,flags=0) 从字符串开始位置进行匹配，若成功 返回Match对象 否则返回None
re.search(pattern,string,flags=0) 搜索第一个匹配的值，返回Match 否则返回None
re.findall(pattern,string,flags=0) 返回所有符合结果的值，返回列表
re.sub(pattern,repl,string,count,flags=0) 对字符串指定子串的替换
re.split(pattern,string,maxsplit,flags=0) 分割字符串
'''
import re
# re.match